package com.synergy.stockflow.warehouse.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Schema
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "inventory_count")
public class InventoryCount {
    /**
     * 盘点ID
     */
    @TableId(value = "count_id", type = IdType.ASSIGN_ID)
    @Schema(description="盘点ID")
    private String countId;

    /**
     * 盘点单号(PC-年月序号)
     */
    @TableField(value = "count_code")
    @Schema(description="盘点单号(PC-年月序号)")
    private String countCode;

    /**
     * 盘点名称
     */
    @TableField(value = "count_name")
    @Schema(description="盘点名称")
    private String countName;

    /**
     * 仓库ID
     */
    @TableField(value = "warehouse_id")
    @Schema(description="仓库ID")
    private String warehouseId;

    /**
     * 盘点类型(全盘, 抽盘, 循环盘点)
     */
    @TableField(value = "count_type")
    @Schema(description="盘点类型(全盘, 抽盘, 循环盘点)")
    private String countType;

    /**
     * 计划开始时间
     */
    @TableField(value = "planned_start_time")
    @Schema(description="计划开始时间")
    private Date plannedStartTime;

    /**
     * 实际开始时间
     */
    @TableField(value = "actual_start_time")
    @Schema(description="实际开始时间")
    private Date actualStartTime;

    /**
     * 实际结束时间
     */
    @TableField(value = "actual_end_time")
    @Schema(description="实际结束时间")
    private Date actualEndTime;

    /**
     * 状态(0=计划中,1=进行中,2=已完成)
     */
    @TableField(value = "`status`")
    @Schema(description="状态(0=计划中,1=进行中,2=已完成)")
    private Integer status;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    @Schema(description="创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @Schema(description="创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @Schema(description="更新时间")
    private Date updateTime;
}